//不暴露结构让外部透明的访问，不暴露：隔离变化（算法与容器隔离）
//***已经过时，因为 STL&泛型 出现
template<typename T>
class Iterator
{
public:
	virtual void first() = 0;
	virtual void next() = 0;
	virtual bool isDone const = 0;
	virtual T& current() = 0;
};

template<typename T>
class Collection
{
public:
	Iterator<T> GetIterator()
	{

	}
};

template<typename T>
class CollectionIterator: public Iterator
{
	//实现父类所有虚函数
};


void algorithm
{
	//
}